CANFD诊断(DoCAN)数据链路层和网络层的一点理解 | 您所在的位置:网站首页 › how to do等于什么什么can › CANFD诊断(DoCAN)数据链路层和网络层的一点理解 |
本文主要参考 ISO 15765-2 Road vehicles — Diagnostic communication over Controller Area Network (DoCAN) —Part 2:Transport protocol and network layer services
CANFD和CAN在数据链路层和网络层诊断相关的一些区别总结。 数据链路层CAN-FD数据段字节数可能为1-8, 12, 16, 20, 24, 32, 48 ,64,字节数由DLC字段决定,如表7所示。 当DLC<8时,要求CAN DLC总是设置为8,未使用的字节填充为特定值CCh(根据实际情况,有些OEM会自定义填充55h)。 当DLC>8且要传输的N_PDU字节数不等于表7中定义的DLC值时,未使用的字节填充为特定值CCh(根据实际情况,有些OEM会自定义填充55h)。 ECU使用标准帧11 位CAN 标识符CAN 数据帧或扩展帧29 位CAN 标识符CAN 数据帧。支持两种诊断报文格式:物理寻址及功能寻址,功能寻址CAN标识符使用0x7DF. CAN-FD帧的BRS(Bit Rate Switch)位作为波特率转换开关,仲裁段传输波特率不变时,可以调高数据段的传输波特率。 DLC(Dec) CAN_DL(bytes)(Dec) CAN-FD CAN_DL(bytes)(Dec) 0 0 0 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 6 6 6 7 7 7 8 8 8 9 8 12 10 8 16 11 8 20 12 8 24 13 8 32 14 8 48 15 8 64 网络层网络层数据单元为N-PUD(protocal data unit),格式如下: Address Information 地址信息 Protocol control information 协议控制信息 Data field 数据场 N_AI N_PCI N_Data 其中,N_PCI用来标识N_PDU的类型,其字节定义如下: N_PDU名称 N_PCI字节 Byte#1 Byte#2 Byte#3 Byte#4 Byte#5 Byte#6 Bits7-4 Bits3-0 SF(CAN_DL≤8) 0000 SF_DL _ _ _ _ _ SF(CAN_DL>8) 0000 0000 SF_DL _ _ _ _ FF(FF_DL≤4095) 0001 FF_DL _ _ _ _ FF(FF_DL>4095) 0001 0000 0000 0000 FF_DL CF 0010 SN _ _ _ _ _ FC 0011 FS BS STmin N/A N/A N/A *1.CAN_DL>8时,使用转义序列将第一字节的低4位设置为0,表示SF_DL的值取决于第二字节,仅适用于CAN-FD帧; 2.当FF_DL>4095时,使用转义序列将第一字节低4位和第二字节全部设置为0,表示SF_DL的值取决于后面的32bits(Byte#3为MSB,Byte#6为LSB); 3.短划线“_“仅代表不在N-PCI使用,取决于PDU的定义,这些字节有可能会在数据段使用。 单帧传输 网络层定义了长数据传输格式,发送消息小于62个数据字节时(正常寻址),可通过发送一个网络层协议数据单元,称之为单帧(SF)。 CAN_DL≤8允许的SF_DL值寻址方式 CAN_DL值 0-1 2 3 4 5 6 7 8 正常寻址 无效 SF_DL =1 SF_DL =2 SF_DL =3 SF_DL =4 SF_DL =5 SF_DL =6 SF_DL =7 混合寻址或扩展寻址无效无效SF_DL =1 SF_DL =2 SF_DL =3 SF_DL =4 SF_DL =5 SF_DL =6 2.CAN_DL>8允许的SF_DL值 寻址方式 CAN_DL值 12 16 20 24 32 48 64 正常寻址 8≤SF_DL ≤10 11≤SF_DL ≤14 15≤SF_DL ≤18 19≤SF_DL ≤22 23≤SF_DL ≤30 31≤SF_DL ≤46 47≤SF_DL ≤62 混合寻址或扩展寻址7≤SF_DL ≤9 10≤SF_DL ≤13 14≤SF_DL ≤17 18≤SF_DL ≤21 22≤SF_DL ≤29 30≤SF_DL ≤45 46≤SF_DL ≤61 多帧传输 长消息的传输是通过将消息分段并发送多个N_PDU来完成的。接收较长的消息是通过接收多个N_PDU并重组接收到的数据字节来完成的。这多个N_PDU分别被称为首帧First Frame (FF) (用于消息的第一个N_PDU) 和连续帧Consecutive Frame(CF)(用于后续所有N_PDU)。 传输序号SN(Sequence Number)用来表示连续帧CF的递增排序,对于首帧FF,SN定义为0,其后的连续帧SN依次加1递增直至15(Dec),然后下一轮的连续帧CF的SN值从0开始直至15(Dec),循环往复。 接收方通过流控帧FlowControl(FC)告诉发送方其接收数据的能力,通过FS(FlowStatus)表示发送方是否可以继续传输数据,发送方应支持所有定义的FC参数。
通过BS(BlockSize)来表示发送方在等待接收方许可传输后续N_PDU前可以传输的最大数量的N_PDU。如果BS设置为0,代表发送方无需等待即可发送剩余的N_PDU。通过STmin(Separation Time minimum)来表示发送方在两帧CF N_PDU之间需要等待的最小时间间隔。 FS(FlowStatus)参数定义 数值(hex) 描述 0 继续发送(ContinueToSend, CTS) 1 等待(Wait) 2 溢出(Overflow) 3-F 保留(Reserved) BS(BlockSize)参数定义 数值(hex) 描述 00 告知发送方本次数据发送过程,后续已无FC帧,网络层发送实体无需等待即可发送剩余所有的CF帧 01-FF 告知发送方在接收方FC帧发送前被允许传输的最大CF帧数量 STmin(Separation Time minimum)参数定义 数值(hex) 描述 00-7F 0ms-127ms, 精度为1ms 80-F0 Reserved F1-F9 100us-900us, 精度为100us FA-FF Reserved |
CopyRight 2018-2019 实验室设备网 版权所有 |